TypeScript でバリデーションライブラリを使用するわけ
ナイトウ.icon TypeScript を使用していて型を使用しているんだからわざわざライブラリを入れなくてもいいのでは?
そもそも TypeScript における型はコンパイル時(開発時)にしか機能しない
実行時には型情報が消えてしまう
トランスパイルによって JavaScript になってしまう
バリデーション(検証)を行うわけ
入力内容の確認や、データなどの書式形式の検証
書いたコードは TypeScript の型によって担保されるが、実行時やとりわけ「外部から入ってくるデータ」についてが問題になる
API からのレスポンス
ユーザーによるフォーム入力
URL のクエリパラメーター
など
開発者の想定とは異なるデータが入ってくることがある
バリデーションライブラリを使用することでこれらのチェックを行うことができる
1. バリデーションを担当
2. 型とバリデーションの二重管理を防ぐ(Type Inference)
二重管理を防ぐためにバリデーションルール(バリデーションスキーマ)を定義する
code:ts
const UserSchema = z.object({ name: z.string().min(1), age: z.number() });
// バリデーション
UserSchema.parse(data);
// TypeScript の型
type User = z.infer<typeof UserSchema>;
ナイトウ scrap
TypeScript
Zod Valibot ArkType